ci: run statement tests against sqlite and postgresql drivers - #9
Open
fornwall wants to merge 1 commit into
Open
ci: run statement tests against sqlite and postgresql drivers#9fornwall wants to merge 1 commit into
fornwall wants to merge 1 commit into
Conversation
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VsDgjiYuJYrp59oto64m9D
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
CI currently only runs the framework's own unit tests (
uv run pytest -vs tests/in.github/workflows/test.yaml) — no ADBC driver is ever exercised. Changes to the validation suite get zero real-driver execution before merging; driver repositories only run the suite at their pinned revision, so breakage is discovered late.What this adds
A minimal, CI-only smoke harness under
smoke/(not shipped as part of the package) plus a newDriver Smoke Testworkflow that runs the driver-facing statement tests (adbc_drivers_validation/tests/statement.py) against two real drivers:sqlitejob: the releasedadbc-driver-sqlitePyPI wheel against a local SQLite database file.postgresqljob: the releasedadbc-driver-postgresqlPyPI wheel against apostgres:18service container.The harness (
smoke/tests/) defines minimalSQLiteQuirks/PostgreSQLQuirks(only what the statement tests need), re-exports the shared fixtures fromadbc_drivers_validation.tests.conftest, and selects the driver via theSMOKE_DRIVERenvironment variable so one harness serves both jobs. Statement tests only for now — query/ingest/connection tests need per-vendor query corpora and fuller quirks, and can be layered on later.Supporting tweaks:
pyproject.toml: scope setuptools package discovery toadbc_drivers_validation*(the new top-levelsmoke/directory otherwise breaks flat-layout auto-discovery).pytest.ini: settestpaths = testsso a barepytestrun keeps collecting only the framework unit tests; the smoke tests use their ownsmoke/pytest.ini..rat-excludes: exclude the emptysmoke/queries/.gitkeepplaceholder.Local verification
test_execute_schema_noalias— the released wheel raisesNOT_IMPLEMENTEDforexecute_schema).postgres:18container: all 7 statement tests passed (test_parameter_execute,test_parameter_schema,test_prepare,test_execute_schema_noalias,test_rows_affected,test_transaction_toggle,test_nonascii_queries).uv run pytest -vs tests/: 211 passed, 1 skipped.uv run ty check: clean.pre-commit run --all-files: all hooks pass (including Apache RAT license check).uvx zizmor .github/workflows/driver-smoke.yaml: no findings.🤖 Generated with Claude Code
https://claude.ai/code/session_01VsDgjiYuJYrp59oto64m9D